If class A is subclass of B, then 

B.isAssignableFrom(new A()) == true, and, new A().getClass() == B.class

However, when you object is generated using proxy tool like CGLIB

B.isAssignableFrom(new A()) == true, and, new A().getClass() != B.class

http://www.systemmobile.com/wp/?p=189
